package de.g18.llmaa.gui;

import java.util.ArrayList;
import java.util.HashMap;

import de.g18.llmaa.logic.vos.VOKey_Type;
import de.g18.llmaa.logic.vos.VOProduct_Key;

public interface IApp_Controler  {

	/**
	 * Registrierung eines neuen Beobachters.
	 * 
	 * @param beobachter
	 *            Der zu Registrierende Beobachter welcher über verändungen im
	 *            {@link IApp_Model} benachrichtig werden soll.
	 */
	public void registerBeobachter(IApp_Beobachter beobachter);
	
	
	/**
	 * Setzen der Eingelesenden LizenzTypen
	 * 
	 * @param listKeyTypes
	 *            Schlüssel - der Lizentyp aus der XML Object - Ein object des
	 *            jehweiligen schlüssels.
	 */
	void setList_KeyTypes(HashMap<String, VOKey_Type> listKeyTypes);
	
	/**
	 * Setzen der Liste mit den Eingelesenden Produkten z.B. aus dem XML
	 * Lesevorgangs
	 * 
	 * @param listProductKey
	 *            Eine Liste mit eingelesenden Produkten
	 */
	void setList_ProductKey(ArrayList<VOProduct_Key> listProductKey);


	public IApp_Model getModel();
	
}
